-- 2022-8-1

--[[9.0闭包    引言
    在Lua语言中，函数是严格遵循词法定界的第一类值

    第一类值意味着Lua语言中的函数与其他常见类型的值具有同等权限:一个程序可以将某个函数保存到变量或表中
        也可以将某个函数作为参数传递给其他函数，还可以将某个函数作为其他函数的返回值返回
    词法定界意味着Lua语言中的函数可以访问包含器自身外部函数中的变量(也意味着Lua语言完全支持Lambda演算)

    上述两个特性联合起来为Lua语言带来了极大的灵活性
    例如 一个程序可以通过定义函数来增加新功能，也可以通过擦除函数来为不受信任的代码创建一个安全的运行时环境
    更重要的是，上述两个特性允许我们在Lua语言中使用很多函数式语言的强大编程技巧
]]